﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UOL.PagSeguro;
using System.Web;

namespace PetShopService
{
    public class PagSeguroServico
    {
        UOL.PagSeguro.VendaPagSeguro oVendaPS = new VendaPagSeguro();


        public void PagarPagSeguro()
        {
            /* //Servidor MOCK
             oVendaPS.UrlPagSeguro = "http://localhost:9090/security/webpagamentos/webpagto.aspx";

             //Grave o seu pedido do ser carrinho no banco de dados, e informe o código do mesmo ao PagSeguro
             string codigoPedido = "01";
             oVendaPS.CodigoReferencia = codigoPedido;

             //Instancie a lista de produtos a ser comprados
             this.oVendaPS.Produtos = new List<UOL.PagSeguro.Produto>();

             //Varrendo os itens do carrinho
             foreach (int codigo in Carrinho.Instancia.CodigosDosItens)
             {

                 //Obtendo o produto do banco de dados
                 this.AccessDataSource1.FilterExpression = string.Format("ID = {0}", codigo);
                 DataView dataView = (DataView)this.AccessDataSource1.Select(new DataSourceSelectArguments());
                 DataRow registro = dataView[0].Row;

                 //Obtendo a quantidade solicitada para o mesmo produto
                 int quantidade = Carrinho.Instancia.ObterQuantidadeDoItem(codigo);

                 //Criando o produto para ser adicionado à venda do PagSeguro
                 UOL.PagSeguro.Produto produto = new UOL.PagSeguro.Produto();
                 produto.Codigo = codigo.ToString();
                 produto.Descricao = string.Format("{0} {1}", registro["Trademark"], registro["Model"]);
                 produto.Quantidade = quantidade;
                 produto.Valor = Convert.ToDouble(registro["Price"]);

                 //Adicionando o produto à venda do PagSeguro
                 this.oVendaPS.Produtos.Add(produto);
             }


             //Informe ao componente, caso possível, os dados do cliente que está efetuando a compra
             oVendaPS.Cliente = new UOL.PagSeguro.Cliente();
             oVendaPS.Cliente.Nome = "PH";

             //Limpando o Carrinho
           //  Carrinho.Instancia.Limpar();

             //Encaminhando ao PagSeguro para efetuar o pagamento
             this.oVendaPS.Executar(HttpContext.Current.Response);
         }
         private int[] RecuperarIDProdutos()
         {
             HttpCookie cookie = (HttpCookie)HttpContext.Current.Request.Cookies["Carrinho"];
             int[] ids = new int[cookie.Values.Count];
             int index = 0;

             // Resgata o cookie


             // Verifica se o ID do produto já foi inserido ao cookie
             foreach (string item in cookie.Values.AllKeys)
             {
                 ids.SetValue(Convert.ToInt32(item), index);
                 index += 1;
             }

             return ids;
         }*/
        }
    }
}
